package zzs.generalframework.console.core.authorization.authfunction.service;

import java.util.List;

import zzs.generalframework.common.core.authorization.authfunction.AuthFunctionBO;
import zzs.generalframework.common.core.authorization.authfunction.AuthFunctionInfo;
import zzs.generalframework.console.common.exception.ConsoleException;
import zzs.generalframework.console.common.model.ConsoleReturnBO;

/**
 * @title
 * @description
 * @project zzs-console
 * @package zzs.generalframework.console.core.authorization.authfunction.service
 * @author zzs
 * @date 2018年1月31日
 * @version 1.0
 */
public interface IAuthFunctionService
{

	/**
	 * 保存权限功能信息
	 *
	 * @param authFunction
	 * @return
	 */
	public ConsoleReturnBO saveAuthFunction(AuthFunctionBO authFunctionBO);

	/**
	 * 保存权限功能信息列表
	 *
	 * @param authFunctionBOList
	 * @return
	 * @throws ConsoleException
	 */
	public ConsoleReturnBO saveAuthFunction(List<AuthFunctionBO> authFunctionBOList) throws ConsoleException;

	/**
	 * 获取权限功能信息
	 *
	 * @param authFunctionInfo
	 * @return
	 */
	public ConsoleReturnBO getAuthFunction(AuthFunctionInfo authFunctionInfo);

	/**
	 * 获取权限功能信息列表
	 *
	 * @param authFunctionInfo
	 * @return
	 */
	public ConsoleReturnBO listAuthFunction(AuthFunctionInfo authFunctionInfo);

	/**
	 * 更新权限功能信息
	 *
	 * @param authFunctionBO
	 * @return
	 */
	public ConsoleReturnBO updateAuthFunction(AuthFunctionBO authFunctionBO);

	/**
	 * 更新权限功能信息列表
	 *
	 * @param authFunctionBOList
	 * @return
	 * @throws ConsoleException
	 */
	public ConsoleReturnBO updateAuthFunction(List<AuthFunctionBO> authFunctionBOList) throws ConsoleException;

	/**
	 * 删除权限功能信息
	 *
	 * @param authFunctionBO
	 * @return
	 */
	public ConsoleReturnBO removeAuthFunction(AuthFunctionBO authFunctionBO);

	/**
	 * 删除权限功能信息列表
	 *
	 * @param authFunctionBOList
	 * @return
	 * @throws ConsoleException
	 */
	public ConsoleReturnBO removeAuthFunction(List<AuthFunctionBO> authFunctionBOList) throws ConsoleException;

	/**
	 * 统计权限功能信息
	 *
	 * @param authFunctionBO
	 * @return
	 */
	public Long countAuthFunction(AuthFunctionBO authFunctionBO);

}
